#include <iostream>
#include <algorithm>
#include <vector>
#include <cstring>
using namespace std;
struct data{
    char name[10];
    int age;
    int net;
};
bool cmp1(data a,data b){
    if(a.net!=b.net) return a.net>b.net;
    if(a.age!=b.age) return a.age<b.age;
    return strcmp(a.name, b.name) < 0;
}


int main(){
    int N,K,outmax,amin,amax;
    //freopen("in.txt","r",stdin);
    scanf("%d %d",&N,&K);
    vector<data> Stu(N),v;
    vector<int> book(205, 0);
    for(int i = 0; i < N; i++)
        scanf("%s %d %d", Stu[i].name, &Stu[i].age, &Stu[i].net);
    sort(Stu.begin(),Stu.end(),cmp1);
    for(int i=0;i<N;i++){
        if(book[Stu[i].age]<100){
            v.push_back(Stu[i]);
            book[Stu[i].age]++;
        }
    }
    for(int i=0;i<K;i++){
        scanf("%d %d %d",&outmax,&amin,&amax);
        vector<data> tmp;
        for(int j=0;j<v.size();j++){
            if(v[j].age<=amax && v[j].age>=amin){
                tmp.push_back(v[j]);
            }
        }
        printf("Case #%d:\n",i+1);
        if(tmp.empty()){printf("None");continue;}
        for(int j=0;j<outmax;j++){
            if(j>tmp.size()-1){break;}
            printf("%s %d %d\n",tmp[j].name,tmp[j].age,tmp[j].net);
        }
        tmp.clear();
    }
}
